home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / filesyst / ext2 / ext2ed-0.000 / ext2ed-0 / ext2ed-0.1 / ext2.descriptors < prev    next >
Text File  |  1995-08-23  |  13KB  |  408 lines

  1. Extended 2 filesystem structure definitions for ext2ed.
  2.  
  3. Most of this file is just copied from the ext2 main include file.
  4.  
  5. My parser is very primitive - It only searches for the struct keywords,
  6. and uses the variables in there. The rest of the file is just ignored.
  7.  
  8. You will find at the end a few additional types which are not aviable in
  9. the original include file, such as the types "file" and "dir". They have
  10. no variables, but are necessary due to the way ext2ed binds C commands
  11. to specific types.
  12.  
  13. Gadi Oxman, 7/95
  14.  
  15. Here is the original copyright:
  16.  
  17. /*
  18.  *  linux/include/linux/ext2_fs.h
  19.  *
  20.  *  Copyright (C) 1992, 1993, 1994  Remy Card (card@masi.ibp.fr)
  21.  *                                  Laboratoire MASI - Institut Blaise Pascal
  22.  *                                  Universite Pierre et Marie Curie (Paris VI)
  23.  *
  24.  *  from
  25.  *
  26.  *  linux/include/linux/minix_fs.h
  27.  *
  28.  *  Copyright (C) 1991, 1992  Linus Torvalds
  29.  */
  30.  
  31.  
  32. /*
  33.  * ACL structures
  34.  */
  35. struct ext2_acl_header    /* Header of Access Control Lists */
  36. {
  37.     unsigned long aclh_size;
  38.     unsigned long aclh_file_count;
  39.     unsigned long aclh_acle_count;
  40.     unsigned long aclh_first_acle;
  41. };
  42.  
  43. struct ext2_acl_entry    /* Access Control List Entry */
  44. {
  45.     unsigned long  acle_size;
  46.     unsigned short acle_perms;    /* Access permissions */
  47.     unsigned short acle_type;    /* Type of entry */
  48.     unsigned short acle_tag;    /* User or group identity */
  49.     unsigned short acle_pad1;
  50.     unsigned long  acle_next;    /* Pointer on next entry for the */
  51.                     /* same inode or on next free entry */
  52. };
  53.  
  54. /*
  55.  * Structure of a blocks group descriptor
  56.  */
  57.  
  58. struct ext2_group_desc
  59. {
  60.     unsigned long  bg_block_bitmap;        /* Blocks bitmap block */
  61.     unsigned long  bg_inode_bitmap;        /* Inodes bitmap block */
  62.     unsigned long  bg_inode_table;        /* Inodes table block */
  63.     unsigned short bg_free_blocks_count;    /* Free blocks count */
  64.     unsigned short bg_free_inodes_count;    /* Free inodes count */
  65.     unsigned short bg_used_dirs_count;    /* Directories count */
  66.     unsigned short bg_pad;
  67.     unsigned long  bg_reserved[0];
  68.     unsigned long  bg_reserved[1];
  69.     unsigned long  bg_reserved[2];
  70. };
  71.  
  72. /*
  73.  * Structure of an inode on the disk
  74.  */
  75. struct ext2_inode {
  76.     unsigned short i_mode;        /* File mode */
  77.     unsigned short i_uid;        /* Owner Uid */
  78.     unsigned long  i_size;        /* Size in bytes */
  79.     unsigned long  i_atime;        /* Access time */
  80.     unsigned long  i_ctime;        /* Creation time */
  81.     unsigned long  i_mtime;        /* Modification time */
  82.     unsigned long  i_dtime;        /* Deletion Time */
  83.     unsigned short i_gid;        /* Group Id */
  84.     unsigned short i_links_count;    /* Links count */
  85.     unsigned long  i_blocks;    /* Blocks count */
  86.     unsigned long  i_flags;        /* File flags */
  87.     unsigned long  l_i_reserved1;
  88.     unsigned long  i_block[0]; /* Pointers to blocks */
  89.     unsigned long  i_block[1]; /* Pointers to blocks */
  90.     unsigned long  i_block[2]; /* Pointers to blocks */
  91.     unsigned long  i_block[3]; /* Pointers to blocks */
  92.     unsigned long  i_block[4]; /* Pointers to blocks */
  93.     unsigned long  i_block[5]; /* Pointers to blocks */
  94.     unsigned long  i_block[6]; /* Pointers to blocks */
  95.     unsigned long  i_block[7]; /* Pointers to blocks */
  96.     unsigned long  i_block[8]; /* Pointers to blocks */
  97.     unsigned long  i_block[9]; /* Pointers to blocks */
  98.     unsigned long  i_block[10]; /* Pointers to blocks */
  99.     unsigned long  i_block[11]; /* Pointers to blocks */
  100.     unsigned long  i_block[12]; /* Pointers to blocks */
  101.     unsigned long  i_block[13]; /* Pointers to blocks */
  102.     unsigned long  i_block[14]; /* Pointers to blocks */
  103.     unsigned long  i_version;    /* File version (for NFS) */
  104.     unsigned long  i_file_acl;    /* File ACL */
  105.     unsigned long  i_dir_acl;    /* Directory ACL */
  106.     unsigned long  i_faddr;        /* Fragment address */
  107.     unsigned char  l_i_frag;    /* Fragment number */
  108.     unsigned char  l_i_fsize;    /* Fragment size */
  109.     unsigned short i_pad1;
  110.     unsigned long  l_i_reserved2[0];
  111.     unsigned long  l_i_reserved2[1];
  112. };
  113.  
  114. /*
  115.  * Structure of the super block
  116.  */
  117. struct ext2_super_block {
  118.     unsigned long  s_inodes_count;    /* Inodes count */
  119.     unsigned long  s_blocks_count;    /* Blocks count */
  120.     unsigned long  s_r_blocks_count; /* Reserved blocks count */
  121.     unsigned long  s_free_blocks_count; /* Free blocks count */
  122.     unsigned long  s_free_inodes_count; /* Free inodes count */
  123.     unsigned long  s_first_data_block; /* First Data Block */
  124.     unsigned long  s_log_block_size; /* Block size */
  125.     long           s_log_frag_size;    /* Fragment size */
  126.     unsigned long  s_blocks_per_group; /* # Blocks per group */
  127.     unsigned long  s_frags_per_group; /* # Fragments per group */
  128.     unsigned long  s_inodes_per_group; /* # Inodes per group */
  129.     unsigned long  s_mtime;        /* Mount time */
  130.     unsigned long  s_wtime;        /* Write time */
  131.     unsigned short s_mnt_count;    /* Mount count */
  132.     short          s_max_mnt_count;    /* Maximal mount count */
  133.     unsigned short s_magic;        /* Magic signature */
  134.     unsigned short s_state;        /* File system state */
  135.     unsigned short s_errors;    /* Behaviour when detecting errors */
  136.     unsigned short s_pad;
  137.     unsigned long  s_lastcheck;    /* time of last check */
  138.     unsigned long  s_checkinterval;    /* max. time between checks */
  139.     unsigned long  s_creator_os;    /* OS */
  140.     unsigned long  s_rev_level;    /* Revision level */
  141.     unsigned short  s_def_resuid;
  142.     unsigned short  s_deg_resgid;
  143.  
  144.     unsigned long  s_reserved[0];    /* Padding to the end of the block */
  145.     unsigned long  s_reserved[1];
  146.     unsigned long  s_reserved[2];
  147.     unsigned long  s_reserved[3];
  148.     unsigned long  s_reserved[4];
  149.     unsigned long  s_reserved[5];
  150.     unsigned long  s_reserved[6];
  151.     unsigned long  s_reserved[7];
  152.     unsigned long  s_reserved[8];
  153.     unsigned long  s_reserved[9];
  154.     unsigned long  s_reserved[10];
  155.     unsigned long  s_reserved[11];
  156.     unsigned long  s_reserved[12];
  157.     unsigned long  s_reserved[13];
  158.     unsigned long  s_reserved[14];
  159.     unsigned long  s_reserved[15];
  160.     unsigned long  s_reserved[16];
  161.     unsigned long  s_reserved[17];
  162.     unsigned long  s_reserved[18];
  163.     unsigned long  s_reserved[19];
  164.     unsigned long  s_reserved[20];
  165.     unsigned long  s_reserved[21];
  166.     unsigned long  s_reserved[22];
  167.     unsigned long  s_reserved[23];
  168.     unsigned long  s_reserved[24];
  169.     unsigned long  s_reserved[25];
  170.     unsigned long  s_reserved[26];
  171.     unsigned long  s_reserved[27];
  172.     unsigned long  s_reserved[28];
  173.     unsigned long  s_reserved[29];
  174.     unsigned long  s_reserved[30];
  175.     unsigned long  s_reserved[31];
  176.     unsigned long  s_reserved[32];
  177.     unsigned long  s_reserved[33];
  178.     unsigned long  s_reserved[34];
  179.     unsigned long  s_reserved[35];
  180.     unsigned long  s_reserved[36];
  181.     unsigned long  s_reserved[37];
  182.     unsigned long  s_reserved[38];
  183.     unsigned long  s_reserved[39];
  184.     unsigned long  s_reserved[40];
  185.     unsigned long  s_reserved[41];
  186.     unsigned long  s_reserved[42];
  187.     unsigned long  s_reserved[43];
  188.     unsigned long  s_reserved[44];
  189.     unsigned long  s_reserved[45];
  190.     unsigned long  s_reserved[46];
  191.     unsigned long  s_reserved[47];
  192.     unsigned long  s_reserved[48];
  193.     unsigned long  s_reserved[49];
  194.     unsigned long  s_reserved[50];
  195.     unsigned long  s_reserved[51];
  196.     unsigned long  s_reserved[52];
  197.     unsigned long  s_reserved[53];
  198.     unsigned long  s_reserved[54];
  199.     unsigned long  s_reserved[55];
  200.     unsigned long  s_reserved[56];
  201.     unsigned long  s_reserved[57];
  202.     unsigned long  s_reserved[58];
  203.     unsigned long  s_reserved[59];
  204.     unsigned long  s_reserved[60];
  205.     unsigned long  s_reserved[61];
  206.     unsigned long  s_reserved[62];
  207.     unsigned long  s_reserved[63];
  208.     unsigned long  s_reserved[64];
  209.     unsigned long  s_reserved[65];
  210.     unsigned long  s_reserved[66];
  211.     unsigned long  s_reserved[67];
  212.     unsigned long  s_reserved[68];
  213.     unsigned long  s_reserved[69];
  214.     unsigned long  s_reserved[70];
  215.     unsigned long  s_reserved[71];
  216.     unsigned long  s_reserved[72];
  217.     unsigned long  s_reserved[73];
  218.     unsigned long  s_reserved[74];
  219.     unsigned long  s_reserved[75];
  220.     unsigned long  s_reserved[76];
  221.     unsigned long  s_reserved[77];
  222.     unsigned long  s_reserved[78];
  223.     unsigned long  s_reserved[79];
  224.     unsigned long  s_reserved[80];
  225.     unsigned long  s_reserved[81];
  226.     unsigned long  s_reserved[82];
  227.     unsigned long  s_reserved[83];
  228.     unsigned long  s_reserved[84];
  229.     unsigned long  s_reserved[85];
  230.     unsigned long  s_reserved[86];
  231.     unsigned long  s_reserved[87];
  232.     unsigned long  s_reserved[88];
  233.     unsigned long  s_reserved[89];
  234.     unsigned long  s_reserved[90];
  235.     unsigned long  s_reserved[91];
  236.     unsigned long  s_reserved[92];
  237.     unsigned long  s_reserved[93];
  238.     unsigned long  s_reserved[94];
  239.     unsigned long  s_reserved[95];
  240.     unsigned long  s_reserved[96];
  241.     unsigned long  s_reserved[97];
  242.     unsigned long  s_reserved[98];
  243.     unsigned long  s_reserved[99];
  244.     unsigned long  s_reserved[100];
  245.     unsigned long  s_reserved[101];
  246.     unsigned long  s_reserved[102];
  247.     unsigned long  s_reserved[103];
  248.     unsigned long  s_reserved[104];
  249.     unsigned long  s_reserved[105];
  250.     unsigned long  s_reserved[106];
  251.     unsigned long  s_reserved[107];
  252.     unsigned long  s_reserved[108];
  253.     unsigned long  s_reserved[109];
  254.     unsigned long  s_reserved[110];
  255.     unsigned long  s_reserved[111];
  256.     unsigned long  s_reserved[112];
  257.     unsigned long  s_reserved[113];
  258.     unsigned long  s_reserved[114];
  259.     unsigned long  s_reserved[115];
  260.     unsigned long  s_reserved[116];
  261.     unsigned long  s_reserved[117];
  262.     unsigned long  s_reserved[118];
  263.     unsigned long  s_reserved[119];
  264.     unsigned long  s_reserved[120];
  265.     unsigned long  s_reserved[121];
  266.     unsigned long  s_reserved[122];
  267.     unsigned long  s_reserved[123];
  268.     unsigned long  s_reserved[124];
  269.     unsigned long  s_reserved[125];
  270.     unsigned long  s_reserved[126];
  271.     unsigned long  s_reserved[127];
  272.     unsigned long  s_reserved[128];
  273.     unsigned long  s_reserved[129];
  274.     unsigned long  s_reserved[130];
  275.     unsigned long  s_reserved[131];
  276.     unsigned long  s_reserved[132];
  277.     unsigned long  s_reserved[133];
  278.     unsigned long  s_reserved[134];
  279.     unsigned long  s_reserved[135];
  280.     unsigned long  s_reserved[136];
  281.     unsigned long  s_reserved[137];
  282.     unsigned long  s_reserved[138];
  283.     unsigned long  s_reserved[139];
  284.     unsigned long  s_reserved[140];
  285.     unsigned long  s_reserved[141];
  286.     unsigned long  s_reserved[142];
  287.     unsigned long  s_reserved[143];
  288.     unsigned long  s_reserved[144];
  289.     unsigned long  s_reserved[145];
  290.     unsigned long  s_reserved[146];
  291.     unsigned long  s_reserved[147];
  292.     unsigned long  s_reserved[148];
  293.     unsigned long  s_reserved[149];
  294.     unsigned long  s_reserved[150];
  295.     unsigned long  s_reserved[151];
  296.     unsigned long  s_reserved[152];
  297.     unsigned long  s_reserved[153];
  298.     unsigned long  s_reserved[154];
  299.     unsigned long  s_reserved[155];
  300.     unsigned long  s_reserved[156];
  301.     unsigned long  s_reserved[157];
  302.     unsigned long  s_reserved[158];
  303.     unsigned long  s_reserved[159];
  304.     unsigned long  s_reserved[160];
  305.     unsigned long  s_reserved[161];
  306.     unsigned long  s_reserved[162];
  307.     unsigned long  s_reserved[163];
  308.     unsigned long  s_reserved[164];
  309.     unsigned long  s_reserved[165];
  310.     unsigned long  s_reserved[166];
  311.     unsigned long  s_reserved[167];
  312.     unsigned long  s_reserved[168];
  313.     unsigned long  s_reserved[169];
  314.     unsigned long  s_reserved[170];
  315.     unsigned long  s_reserved[171];
  316.     unsigned long  s_reserved[172];
  317.     unsigned long  s_reserved[173];
  318.     unsigned long  s_reserved[174];
  319.     unsigned long  s_reserved[175];
  320.     unsigned long  s_reserved[176];
  321.     unsigned long  s_reserved[177];
  322.     unsigned long  s_reserved[178];
  323.     unsigned long  s_reserved[179];
  324.     unsigned long  s_reserved[180];
  325.     unsigned long  s_reserved[181];
  326.     unsigned long  s_reserved[182];
  327.     unsigned long  s_reserved[183];
  328.     unsigned long  s_reserved[184];
  329.     unsigned long  s_reserved[185];
  330.     unsigned long  s_reserved[186];
  331.     unsigned long  s_reserved[187];
  332.     unsigned long  s_reserved[188];
  333.     unsigned long  s_reserved[189];
  334.     unsigned long  s_reserved[190];
  335.     unsigned long  s_reserved[191];
  336.     unsigned long  s_reserved[192];
  337.     unsigned long  s_reserved[193];
  338.     unsigned long  s_reserved[194];
  339.     unsigned long  s_reserved[195];
  340.     unsigned long  s_reserved[196];
  341.     unsigned long  s_reserved[197];
  342.     unsigned long  s_reserved[198];
  343.     unsigned long  s_reserved[199];
  344.     unsigned long  s_reserved[200];
  345.     unsigned long  s_reserved[201];
  346.     unsigned long  s_reserved[202];
  347.     unsigned long  s_reserved[203];
  348.     unsigned long  s_reserved[204];
  349.     unsigned long  s_reserved[205];
  350.     unsigned long  s_reserved[206];
  351.     unsigned long  s_reserved[207];
  352.     unsigned long  s_reserved[208];
  353.     unsigned long  s_reserved[209];
  354.     unsigned long  s_reserved[210];
  355.     unsigned long  s_reserved[211];
  356.     unsigned long  s_reserved[212];
  357.     unsigned long  s_reserved[213];
  358.     unsigned long  s_reserved[214];
  359.     unsigned long  s_reserved[215];
  360.     unsigned long  s_reserved[216];
  361.     unsigned long  s_reserved[217];
  362.     unsigned long  s_reserved[218];
  363.     unsigned long  s_reserved[219];
  364.     unsigned long  s_reserved[220];
  365.     unsigned long  s_reserved[221];
  366.     unsigned long  s_reserved[222];
  367.     unsigned long  s_reserved[223];
  368.     unsigned long  s_reserved[224];
  369.     unsigned long  s_reserved[225];
  370.     unsigned long  s_reserved[226];
  371.     unsigned long  s_reserved[227];
  372.     unsigned long  s_reserved[228];
  373.     unsigned long  s_reserved[229];
  374.     unsigned long  s_reserved[230];
  375.     unsigned long  s_reserved[231];
  376.     unsigned long  s_reserved[232];
  377.     unsigned long  s_reserved[233];
  378.     unsigned long  s_reserved[234];
  379. };
  380.  
  381. The following is actually not used, due to the variable length of the
  382. name field. EXT2ED handles directories through the type "dir" below.
  383.  
  384. /*
  385.  * Structure of a directory entry
  386.  */
  387.  
  388. /* struct ext2_dir_entry { */
  389. /*
  390.     unsigned long  inode;            /* Inode number */
  391.     unsigned short rec_len;            /* Directory entry length */
  392.     unsigned short name_len;        /* Name length */
  393.     char           name[EXT2_NAME_LEN];    /* File name */
  394. };
  395. */
  396.  
  397. struct file {
  398. };
  399.  
  400. struct dir {
  401. };
  402.  
  403. struct block_bitmap {
  404. };
  405.  
  406. struct inode_bitmap {
  407. };
  408.